This invention relates to a memory device, a computer system, and a method of controlling the memory device.
Data compression technology has been drawing more attention along with increase in volume of data to be processed by information systems. Data compression is to convert data into different data having a smaller volume while keeping information of the original data. The data compression is categorized as lossless compression or lossy compression. The lossless compression allows complete restoration of original data by decompressing the compressed data. The lossy compression does not allow complete restoration of original data even after decompressing the compressed data. The data compression referred to hereafter in the embodiments is lossless compression. For lossless compression, there have been known a large number of compression algorithms including Huffman coding.
As storage devices to store data for information systems, hard disk drives (hereinafter, abbreviated as HDDs) are widely used; however, non-volatile semiconductor memories, particularly flash memories (hereinafter, abbreviated as FMs), have come in use in recent years. Although FMs have smaller capacities than HDDs, flash memory boards including multiple FMs thereon can store a large volume of data. JP 2013-030251 A discloses an example of a storage device employing FMs.
Data compression is executed by a program running on a server apparatus. A database having compression functionality disclosed in JP 2003-015918 A operates on a server apparatus to compress data and store the data in a storage apparatus. The server apparatus retrieves compressed data from the storage apparatus and a program running on the server apparatus decompresses the compressed data.
Meanwhile, storage apparatuses implemented with data compression functionality are also known. For example, JP 2011-048679 A discloses a storage apparatus having a compression/decompression function. The storage apparatus receives a data write request from a server apparatus, compresses data, and stores the data to a storage medium. When receiving a data read request from a server apparatus, the storage apparatus decompresses data and sends the data to the server.